#pragma once
#include "json.hpp"
#include <string>
using namespace std;

namespace imitation{
    namespace json{
        class Parser{
        public:
            Parser();

            void load(const string &json);
            Json parse();

        private:
            void skip_whitespace();
            char next();
            Json parse_null();
            Json parse_bool();
            Json parse_number();
            string parse_string();
            Json parse_array();
            Json parse_object();

            string json_;
            int pos_;
        };
    }
}